VisualHMI - 串口升级Private

概述

HMI系列屏幕支持用户主板给屏幕升级工程文件,升级包为“private”,可通过VisualHMI软件生成,如下所示:

  1. 编译工程

  2. 量产向导

  3. SD卡下载:生成“private”

Video_2023-12-06_143238

1. 下载流程

1.1 进入下载模式命令

用户主板发送字符:$cfgenter#

屏幕回应: $ok#

屏幕进入下载模式,将不会响应原本的协议交互(如Modbus协议)。

[!warning|tip:注意] 注意:若用户主板没有收到屏幕应答的“ $ok#”,表示未进入下载模式,请检查用户主板发送的字符格式,以及串口通讯是否正常。

1.2 创建文件命令

用户主板发送字符:$file,[pathname],[size],[block],[baudrate]#

  • [pathname]:屏幕内部存储路径
  • [size]:文件字节大小
  • [block]:文件传输每包数据大小,推荐选择(512+4)或者(1024+4)或者(2048+4)
  • [baudrate]: 表示数据传输波特率,0表示使用当前波特率

屏幕回应

  • $ok#,表示文件创建成功
  • $err#,表示文件创建失败

例如: $file,3:/bin/image.bin,12345,2052,921600#,路径中的3:为屏幕的存储盘符,相当以private:。

[!warning|tip:注意] 注意:修改波特率前,一定要确保硬件串口缓冲的数据已经发送完毕!简单处理的也可以通过延时10毫秒实现

1.3 下载文件数据命令

下载文件命令发送成功之后,用户主板通过分数据包发送文件数据到屏幕。

用户主板发送数据包格式为:SN SNR DATA CHECKSUM

  • [SN]:序号,1字节

  • [SNR]:SN按位取反,1字节

  • [DATA]:有效数据,推荐512,1024,2048字节

  • [CHECKSUM]:数据包校验和,在取反,2字节

屏幕回应:

  • SN SNR,表示写入成功
  • 无,不应答 表示异常

用户主板从SN=0开始,分包发送数据,发送成功后递增SN(从0~255循环),屏幕收到用户主板发送的数据包后,对比SN和校验和。如果数据正确,屏幕回应“SN SNR”两个字节应答,如果错误,不回应。

[!warning|tip:注意] 注意:用户主板需要重发当前数据包。如果连续3秒,屏幕没有收到用户主板的任何数据,屏幕退出当前文件下载。最后一个数据包,如果不够一个完整数据包,数据部分需要用0填充

1.4 重启屏幕命令

用户主板发送字符:$reboot#

在下载模式下,所有文件下载完成后,用户主板发送 $reboot# ,屏幕自动重启,自动加载用户主板更新的文件。

1.5 退出下命令

用户主板发送字符:$cfgexit#

屏幕返回:$ok#

在下载模式下,所有文件下载完成后,用户主板发送$cfgexit#。屏幕退出下载模式,屏幕恢复响应原本协议的交互(如modbus协议)。

2.上位机模拟

当实体屏幕当前的串口设置为“8N1”是,可通过VisualHMI联机。通过上位机下载工程文件,点击量产向导,如下所示

[!warning|tip:注意] 注意:非8N1,上位机联机不成功,不支持上位机模拟下载

  1. 下载波特率:921600
  2. 点击下载

    Video_2023-12-06_144909

[!warning|tip:注意] 注意:RS232/TTL接口,最大支持921600,RS485,建议19200

上位机升级过程,可以用 Bus Hound 监听上位和屏幕的数据交互。若用户主板升级失败,可以对比Bus Hound监听的数据,查看差异。如下所示

Video_2023-12-06_145132

上位机和虚拟屏联机,串口下载,也可以快速看到指令交互,在和用户主板发出指令对比,如下所示:

Video_2023-12-06_150259

Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2024-07-22 09:42:52

results matching ""

    No results matching ""